// 服务器全部接口返回的数据类型
export interface ResponseData{
  code:number,
  message:string,
  ok:boolean
}

// SPU数据的类型
export interface SpuData{
  category3Id:string|number,
  id?:number,
  spuName:string,
  tmId:number|string,
  description:string,
  spuImageList:null|SpuImg[],
  spuSaleAttrList:null|SaleAttr[],
}

// 数组：元素都是已有SPU数据类型
export type Records = SpuData[]

// 定义获取已有的SPU接口返回的数据ts类型
export interface HasSpuResponseData extends ResponseData{
  data:{
    records:Records,
    total:number,
    size: number,
    current: number,
    searchCount: boolean,
    pages: number
  }
}

// 所有品牌数据的TS类型
export interface TradeMark{
  id:number,
  tmName:string,
  logoUrl:string
}
// 品牌接口返回的数据ts类型
export interface AllTradeMark extends ResponseData{
  data:TradeMark[]
}

// 商品图片的ts类型
export interface SpuImg{
  id?:number,
  imgName?:string,
  imgUrl?:string,
  createTime?:string,
  updateTime?:string,
  spuId?:number,
  name?:string,
  url?:string
}

// 已有的SPU的照片墙数据的类型
export interface SpuHasImg extends ResponseData{
  data:SpuImg[]
}

// 已有的销售属性值对象ts类型
export interface SaleAtrrValue{
  id?:number,
  createTime?:null,
  updateTime?:null,
  spuId?:number,
  baseSaleAttrId:number|string,
  saleAttrValueName:string,
  saleAttrName?:string,
  isChecked?:null
}

// 存储已有的销售属性值数组
export type SpuSaleAttrValueList = SaleAtrrValue[]

// 销售属性对象ts类型
export interface SaleAttr {
  id?:number,
  createTime?:null,
  updateTime?:null,
  spuId?:number,
  baseSaleAttrId:number|string,
  saleAttrName:string,
  spuSaleAttrValueList:SpuSaleAttrValueList,
  flag?:boolean,
  saleAttrValue?:string
}

// SPU已有的销售属性接口返回数据ts类型
export interface SaleAttrResponseData extends SpuData{
  data:SaleAttr[]
}

// 已有全部SPU的返回数据ts类型
export interface HasSaleAttr {
  id:number,
  name:string
}

export interface HasSaleAttrResponseData extends ResponseData{
  data:HasSaleAttr[]
}


export interface Attr{
  attrId:number|string, //平台属性的ID
  valueId:number|string, //属性值的ID
}
export interface SaleAttr{
  saleAttrId:number|string,//属性ID
  saleAttrValueId:number|string,//属性值的ID
}
export interface SkuData {
  category3Id: string|number, //三级分类的id
  spuId: string|number, //已有的SPU的id
  tmId:  string|number, //品牌的id
  skuName: string,//SKU名字
  price:  string|number, //SKU价格
  weight: string|number, //SKU重量
  skuDesc:string, //SKU描述
  skuAttrValueList: Attr[],  //平台属性的收集
  skuSaleAttrValueList:SaleAttr[], //销售属性
  skuDefaultImg:string, //售卖SKU图片的地址
}

// 获取SKU数据接口的ts类型
export interface SkuInfoData extends ResponseData{
  data:SkuData[]
}
